#pragma once

#include <winsock2.h>
#include <Ws2tcpip.h>
#include <windows.h>

#include <stdexcept>
#include <string>
#include <sstream>
#include <vector>
#include <concurrent_queue.h>
#include <functional>
#include <list>
#include <set>
#include <algorithm>
#include <time.h>
#include <iterator>
#include <iomanip>
#include <fstream>
#include <map>
#include <cassert>

// Common types
typedef unsigned __int64 uint64;
typedef signed __int64 int64;
typedef unsigned __int32 uint32;
typedef signed __int32 int32;
typedef unsigned __int16 uint16;
typedef signed __int16 int16;
typedef unsigned __int8 uint8;
typedef signed __int8 int8;

inline void nullout(void* pData, int32 size)
{
	memset(pData, 0, size);
}


//Database Stuff
#include "../dep/include/mysql/mysql.h"

#include "DatabaseException.h"
#include "IField.h"
#include "Field.h"
#include "IDBRow.h"
#include "MysqlRow.h"
#include "IQueryResult.h"
#include "QueryResult.h"
#include "IDatabase.h"
#include "MysqlDatabase.h"
#include "ByteBuffer.h"
#include "Mutex.h"